/**
 * Date객체를 지정된 포맷으로 변환하여 문자열 반환한다.
 * Date prototype에 함수 추가함.
 * @param format
 * @return 포맷된 문자열
 */
Date.prototype.formatDate = function(format) {
	var date = this;
	if (!format){
		format = "yyyy-MM-dd";
	}
	var month = date.getMonth() + 1;
	var year = date.getFullYear();

	format = format.replace("MM", month.toString().padL(2, "0"));
	if (format.indexOf("yyyy") > -1){
		format = format.replace("yyyy", year.toString());
	}else if (format.indexOf("yy") > -1){
		format = format.replace("yy", year.toString().substr(2, 2));
	}

	format = format.replace("dd", date.getDate().toString().padL(2, "0"));
	var hours = date.getHours();
	if (format.indexOf("t") > -1){
		if (hours > 11){
			format = format.replace("t", "pm");
		}else{
			format = format.replace("t", "am");
		}
	}

	if (format.indexOf("HH") > -1){
		format = format.replace("HH", hours.toString().padL(2, "0"));
	}

	if (format.indexOf("hh") > -1) {
		if (hours > 12){
			hours -= 12;
		}
		if (hours === 0){
			hours = 12;
		}
		format = format.replace("hh", hours.toString().padL(2, "0"));
	}

	if (format.indexOf("mm") > -1){
		format = format.replace("mm", date.getMinutes().toString().padL(2, "0"));
	}

	if (format.indexOf("ss") > -1){
		format = format.replace("ss", date.getSeconds().toString().padL(2, "0"));
	}
	return format;
};

/**
 * formatDate에서 사용
 * @param chr
 * @param count
 * @return 문자열
 */
String.repeat = function(chr,count){
	var str = "";
	for(var x=0;x<count;x++) {
		str += chr;
	}
	return str;
};

/**
 * formatDate에서 사용
 * @param width
 * @param pad
 * @return 문자열
 */
String.prototype.padL = function(width,pad){
	if (!width ||width<1){
		return this;
	}
	if (!pad){
		pad=" ";
	}
	var length = width - this.length;
	if (length < 1){
		return this.substr(0,width);
	}
	return (String.repeat(pad,length) + this).substr(0,width);
};

/**
 * formatDate에서 사용
 * @param width
 * @param pad
 * @return 문자열
 */
String.prototype.padR = function(width,pad){
	if (!width || width<1){
		return this;
	}
	if (!pad){
		pad=" ";
	}
	var length = width - this.length;
	if (length < 1) {
		this.substr(0,width);
	}
	return (this + String.repeat(pad,length)).substr(0,width);
};


